home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ShareWare OnLine 2
/
ShareWare OnLine Volume 2 (CMS Software)(1993).iso
/
prog
/
mspell.zip
/
MGSPELL.DOC
< prev
next >
Wrap
Text File
|
1991-04-14
|
29KB
|
1,057 lines
04/13/91
MicroGenesis Spell Checker V1.4
Copyright 1990, 1991 by Jeff Heaton
MicroGenesis Software
P.O. Box 25534
St. Louis, Mo 63123
BBS: (314) 638-5204
Table Of Contents
-----------------
Program Information
Description of MGSPELL . . . . . . . . . . . . . . . 3
What Is Shareware? . . . . . . . . . . . . . . . . . 4
Warranty/Registration . . . . . . . . . . . . . . . 5
Order Form . . . . . . . . . . . . . . . . . . . . . 9
Installing MGSPELL . . . . . . . . . . . . . . . . . 10
How MGSPELL works . . . . . . . . . . . . . . . . . 11
Where Did All of These Words Come From . . . . . . . 15
Contacting The Author/Trademarks/Version History . . 16
PROGRAM DESCRIPTION
-------------------
MGSPELL is a utility to allow programers to easily
include spell checking to any program that they are
developing, without the need for them to take the time to
create the necessary compression/searching routines necessary
for spell checking. This program is not a stand alone spell
checker, but rather is a set of linkable files for use with
Turbo
C, Borland C++ or MicroSoft C. Other C compilers could
probably be used, but this will require you registering the
source code and making the necessary modifications. It comes
with a modifiable dictionary containing either 59,000 or
119,000 words and offers such features as spelling
suggestions and word list maintenance. The routines are
built to be straight forward and easy to use in your own
programs.
Some of the features of MGSPELL include:
* A 119,000+ word dictionary compressed to around 400k for
use in programs that demand the biggest dictionary
available.
* A 59,000+ word dictionary compressed to around 230k for use
in a program that will fit on a 360k floppy drive.
* Fast disk-based dictionary takes only around 20k of ram no
matter what dictionary you choose.
* Routines to suggest words for incorrect spellings.
* Completely royalty free. Pay once and use in as many of
your programs as you like.
* If you must include source code with your programs you may
also buy a license to release "semi-registered" linkables
of MGSPELL for your users to use with your program's source
code (at a additional fee, see licensing section)
* Marketed as Shareware, not cripple ware: Try everything
before you buy! (except source code).
* Support for both registered and unregistered user by a
variety of means.
-3-
A General Definition Of ShareWare
---------------------------------
If you are unfamiliar with the shareware software
marketing system this section describes it briefly.
Shareware distribution gives users a chance to try
software before buying it. If you try a Shareware program and
continue using it, you are expected to register. Individual
programs differ on details -- some request registration while
others require it, some specify a maximum trial period. With
registration, you get anything from the simple right to
continue using the software to an updated program with
printed manual.
Copyright laws apply to both Shareware and commercial
software, and the copyright holder retains all rights, with a
few specific exceptions as stated below. Shareware authors
are accomplished programmers, just like commercial authors,
and the programs are of comparable quality. (In both cases,
there are good programs and bad ones!) The main difference is
in the method of distribution. The author specifically grants
the right to copy and distribute the software, either to all
and sundry or to a specific group. For example, some authors
require written permission before a commercial disk vendor
may copy their Shareware.
Shareware is a distribution method, not a type of
software. You should find software that suits your needs and
pocketbook, whether it's commercial or Shareware. The
Shareware system makes fitting your needs easier, because you
can try before you buy. And because the overhead is low,
prices are low also. Shareware has the ultimate money-back
guarantee -- if you don't use the product, you don't pay for
it.
-4-
Licensing:
If you going to be releasing programs with MGSPELL code in
them you must purchase one of the following licences before
you release code containing MGSPELL libraries:
Basic Library Registration - $20
--------------------------------
This registration package includes:
* Permission to release MGSPELL code in executable form,
by executable I mean files such as .EXE, .COM, or .OVL.
Once you receive your registration you do not need to
get any further permission from me, or pay any royalties
of any sort.
* You may NOT release MGSPELL code in the .LIB or .OBJ
forms. The only allowable way to release it in this
form is when it is in the original archive as you first
got it (with all its support files intact).
* You will be sent the next version on disk as soon as it
becomes available. If any additional versions should be
produced after your one free update they may either be
downloaded from a source such as CompuServe,GEnie or On-
Line America, or bought from me at the rate of $5 a
disk.
Source Code And Library Registration - $50
------------------------------------------
This registration package includes:
* Permission to release MGSPELL code in executable form,
by executable I mean files such as .EXE, .COM, or .OVL.
Once you receive your registration you do not need to
get any further permission from me, or pay any royalties
of any sort.
* You may NOT release MGSPELL code in the .LIB or .OBJ
forms. The only allowable way to release it in this
form is when it is in the original archive as you first
got it (with all its support files intact).
* You will be sent the next version on disk as soon as it
becomes available. If any additional versions should be
produced after your one free update they may either be
downloaded from a source such as CompuServe,GEnie or On-
Line America, or bought from me at the rate of $5 a
disk.
* You also get the complete source code to MGSPELL. This
allows you to recompile the libraries that make up
MGSPELL. However you may not release the libraries in
.OBJ or .LIB form as mentioned above.
-5-
This gives you the right to release executable programs
compiled with the MGSPELL linkable libraries, as well as any
programs using the source code to MGSPELL itself. You will
receive the complete source code to MGSPELL, therefore you
can fine tune MGSPELL to your particular program. You may
not release MGSPELL source code, or linkable libraries, only
compiled executable files (.COM, .EXE, or .OVL). If you
release source code with your programs and have need to
release MGSPELL in library form see the third statement about
limited release license. Using the source code you can also
use MGSPELL (with some modification) on compilers other than
MicroSoft QuickC or any Borland C, or even non-MSDOS
machines. You will be given the libraries for all memory
models for both Turbo/Borland C/C++ and MicroSoft QuickC. If
a newer version of MGSPELL should become available, you will
be sent one free update. I will send you notice of newer
versions after you receive your one free update, you may then
order them for $5 or download the source code directly from
the MicroGenesis Support BBS PolyMorph (314) 638-5204.
Limited Vender License - $200
-----------------------------
* Permission to release MGSPELL code in executable or
library form. With this package you can release MGSPELL
in any form you want EXCEPT source code, or as a stand a
lone program. Then any people who register your program
are also registered users of MGSPELL(for use with your
program only, and with no further payment to me). Once
you get your registration you do not need to get any
further permission from me, or pay any royalties of any
sort.
* The only restrictions put on the release of library code
under this plan are:
1. You may not release library code as a stand a lone,
you must be releasing it with the source code to your
own program.
2. You may only release library code in a program where
you are making some sort of profit. Commercial and
Shareware are fine.
3. You must include a statement that users should not
use MGSPELL library code in other programs. If you
have one general statement protecting all of your
source code from such use that is all that is
required.
4. You may NOT release MGSPELL in source code format.
If you would like to do so please contact me and some
sort of deal can probably be made.
* You will be sent the next version on disk as soon as it
becomes available. If any additional versions should be
-6-
produced after your one free update they may either be
downloaded from a source such as CompuServe,GEnie or On-
Line America, or bought from me at the rate of $5 a
disk.
* You also get the complete source code to MGSPELL. This
allows you to recompile the libraries that make up
MGSPELL. Source code is for your own use and may never
be included with any programs you release.
What is good about this plan is it allows people who
register the source code to your program to get their
registration all from the same source. Without this users
who obtained your program would have to register a $20 basic
registration with MGSPELL before they could legally use your
program's source code. Lack of plans like this is the
primary reason I have not used many libraries created by
other people, I did not feel it looked professional, or even
practical, to tell users that they must register other
programs in addition to mine, just to use mine. Please not
that this applies ONLY to the release of linkable code, there
are no restrictions on executable code, beyond registration.
For All Three Licenses
----------------------
Users of MGSPELL must accept this disclaimer of warranty:
"MGSPELL is supplied as is. The author disclaims all
warranties, expressed or implied, including, without
limitation, the warranties of merchantability and of fitness
for any purpose. The author assumes no liability for damages,
direct or conse-quential, which may result from the use of
MGSPELL."
MGSPELL is a "shareware program" and is provided at no
charge to the user for evaluation. Feel free to share it
with your friends, but please do not give it away altered or
as part of another system. The essence of "user-supported"
software is to provide personal computer users with quality
software without high prices, and yet to provide incentive
for programmers to continue to develop new products. If you
find this program useful and find that you are using MGSPELL
and continue to use MGSPELL after a reasonable trial period,
you must make a registration payment of $20 to MicroGenesis
Software.
Anyone distributing MGSPELL for any kind of remuneration
must first contact MicroGenesis Software at the address below
for authorization. This authorization will be automatically
granted to distributors recognized by the (ASP) as adhering
to its guidelines for shareware distributors, and such
distributors may begin offering MGSPELL immediately (However
MicroGenesis Software must still be advised so that the
distributor can be kept up-to-date with the latest version of
MGSPELL).
-7-
You are encouraged to pass a copy of MGSPELL along to
your friends for evaluation. Please encourage them to
register their copy if they find that they can use it. All
registered users will receive a copy of the latest version of
the MGSPELL system.
You may not, under any circumstances, release a program
containing MGSPELL code before you register. For all
programs that you compile MGSPELL directly into, and only
release the compiled version you need not contact me. No
royalties are charged, and you are free to use it as you
choose just so long is it is ONLY released in compiled
form (unless you have a limited vender license). With any
questions please free to contact me.
-8-
_____________________________________________________________
ORDER FORM:MGSPELL V1.4
NAME : ___________________________
COMPANY: ___________________________
ADDRESS: ___________________________
(OPTIONAL)
PHONE : ______________________________
WHERE YOU GOT THIS FILE: ______________________________
NetWork Address : ______________________________
Are you a member of ASP: Y N
BASIC MGSPELL V1.4 Library Registration: $20 __
Source Code MGSPELL V1.4 Registration : $50 __
Limited Vender Registration : $200 __
Rush Order(send via Compuserve or Genie: +$10 __
NetWork Address to send to ___________
Total Enclosed : _______
Disk Format: 5 1/4" __ 3 1/2" __
The product being registered is MGSPELL V1.4.
You will receive the latest version.
Send check or money order to:
MicroGenesis
P.O. Box 25534
St. Louis, Mo
Make check payable to: Jeff Heaton
NOTE: Rush orders will ONLY be EMAILed over GENIE or
Compuserve. I will soon be joining FIDONET, so that
may be a possibility soon, please contact me for
further information if you want it sent in a way other
than GENIE or CompuServe.
-9-
Installing MGSPELL:
To conserve disk space the dictionaries have been
compressed with SDAs(self-disolving archives). This is
mainly so that they will fit on the 360k disks that I usually
release them on. To bring the files out of the SDA simply
change to the drive or subdirectory that you want the files
onto. For example to run the demo program, assuming your
using A: to install MGSPELL to a hard drive C:.
C:
MD \MGSPELL
CD \MGSPELL
COPY A:DEMO.EXE
<INSERT LARGE dictionary disk>
A:\BIGDICT
DEMO
-10-
How MGSPELL Works
-----------------
MGSPELL uses two dictionary files to hold the words.
MGSPELL.DIC and MGSPELL.USE, these are respectively the main,
and user dictionary. The main dictionary is stored in
compressed form, and can be searched much faster than the
user dictionary. All words that are added are put in the
user dictionary. This has two advantages: #1 no changes to
the dictionary are permanent, MGSPELL.USE may be deleted at
any time to clear the user dictionary, and leave the main
dictionary unaltered. #2 The dictionary need not be
recompressed each time a word is added.
The only letters allowed by MGSPELL are all 26 capital
letters, and the apostrophe ('). Also any word made up of
only two letters is assumed to be a abbreviation and is
counted as correct without any disc access. The limit on
word length is 30 characters, which should be sufficient for
the English language.
MGSPELL has been tested with the following compilers:
Turbo C++ V1.0
Turbo C V2.0
Borland C++ V2.0
MicroSoft QuickC V2.5
Some support has also been included for Zortec, but it
remains untested.
Please not that you MUST use the library for your compiler.
MicroSoft and Turbo C libraries are included.
-11-
To allow your compiler to recognize the msSPELL library
you must include the name of it "MGSPL_x.LIB". Into either
your project or make file. A sample project file is included
for both Turbo C and Turbo C++, as well as a make file for
MicroSoft Quick C. You must also use the correct library,
one is included for each memory model. MGSPL_S for small,
MGSPL_H for huge, etc. For more info on memory models
consult your C manual.
Variables
---------
char *path_main;
Is setup by MGSPELL and usually need not be changed. It
contains the complete path to the main dictionary file
(including filename). Normally MGSPELL.DIC.
char *path_user;
Is setup by MGSPELL and usually need not be changed. It
contains the complete path to the user dictionary file
(including filename). Normally MGSPELL.USE.
char suggest[10][30]
When "suggest_word" is called this array contains the ten
most-likely corrections for the mis-spelled word. Words are
placed into this by the routine "suggest_word".
Routines
--------
char spell_check (char *word);
This routine is the main access point to mgSPELL. It
will scan the dictionary for "*word". If the word is located
zero is returned, if the word is not in the dictionary a one
is returned.
void add_word(char *word);
This routine will add a word to the user dictionary.
Disc space is really the only limit on how many words the
dictionary can hold (the programs own "limit" is somewhere
around four 2 trillion words). However the speed of MGSPELL
is affected by how many words are in the user dictionary.
If there is a large number "import" should be used to merge
the user dictionary with the main dictionary.
-12-
void suggest_word(char *word);
This routine will update the word suggest list (see
above). It is usually called just after spell_check
determines a word is not spelled correctly.
long word_count(void);
This routine returns, in long int form, the number of
words in the dictionary.
void dump(char *name);
This routine dumps the whole dictionary to the path
pointed to by "*name". The file will be in ASCII format with
each line ended by a CR/LF. This routine will take awhile to
execute(1 minute, ten seconds on my 10mghtz 80286).
void import(void);
This routine is used to merge the user and main
dictionaries. Since this means repacking the entire
dictionary this is not the fastest routine in the world. It
takes one minute and forty seconds on my 10mghtz 80286. This
routine should be called to make added words (which go to the
user dictionary) permanent additions to the dictionary. This
routine will also accept ascii dictionaries to be merged into
the main dictionary. However they MUST be in the form that
DUMP issues files(SORTED and one word per line). You simply
name your ascii text file MGSPELL.USE(or whatever you have
named your user dictionary) and run import. I found this to
be the fastest way to build the dictionary from the seperate
ascii files I received to create the dictionary.
-13-
Files Included With MGSPELL
---------------------------
SDA means self-disolving archive. Execute these programs and
they will break apart into several programs. This is done to
conserve space.
MGSPELL1.ZIP:
BORLAND COM SDA:Borland Compatible Libraries
MICRO COM SDA:MicroSoft Compatible Libraries
DEMO EXE MGSPELL Demo, must have access to dictionary
MGSPELL H Header file to #include to access MGSPELL
DEMOCPP PRJ Demo project file for Borland C++
DEMO PRJ Demo project file for Turbo C2.0
QC_DEMO MAK Demo make file for QuickC
MGSPELL DOC This text file
REAME DOC Some Quick Info on MGSPELL
SOURCE COM (registered source code version only)
The above SDAs include:
BORLAND.COM:
MGSPL_C LIB Borland C Library for COMPACT model
MGSPL_H LIB Borland C Library for HUGE model
MGSPL_L LIB Borland C Library for LARGE model
MGSPL_M LIB Borland C Library for MEDUM model
MGSPL_S LIB Borland C Library for SMALL model
MGSPL_T LIB Borland C Library for TINY model
MICRO.COM:
MGSPL_C LIB QuickC Library for COMPACT model
MGSPL_H LIB QuickC Library for HUGE model
MGSPL_L LIB QuickC Library for LARGE model
MGSPL_M LIB QuickC Library for MEDUM model
MGSPL_S LIB QuickC Library for SMALL model
MGSPL_T LIB QuickC Library for TINY model
SOURCE.COM:
MGSPELL2.ZIP:
MGSPELL DIC Small dictionary for use on 360k systems
READ ME Some general info on MGSPELL
MGSPELL3.ZIP
BIGDICT EXE SDA:Large 119,000 word dictionary
READ ME Some general info on MGSPELL
-14-
Where The Dictionary Came From
------------------------------
This is just a description of where the words in this
dictionary came from, it is included as background
information only. I have had a few registered users of
previous versions of MGSPELL ask me if I was actually crazy
enough to sit here and type out THAT many words, the answer
is no. Like as many tedious tasks as I can I let my computer
do it. Up to the 60,000 word version the words were typed by
probably thousands of people. Whenever I logged onto a local
BBS, or compuserve I would open the capture buffer and let it
fill with whatever text came across my terminal. I even
wrote a little utility that could go through disks and pull
out every bit of textual data it could find. I then wrote
another software program that would sort these huge text
files(some over 1-2 meg long) and remove any duplicate
letters. I had other programs that would run through the
list and add extra words, basically adding a ED, ING, S, ES
onto EVERY word in the text files. I then had a dictionary
with countless mis-spelled words in it. So I located a
shareware library, much like my own, only it was written in
PASCAL and wrote a software program in pascal spell check my
own dictionary against a known good dictionary. I did not do
this to every file, some of the files I knew had no errors
because they had been draw from news services and
encyclopedias, which allowed my dictionary to surpass in size
the dictionary of its "checker program."
This most recent addition of words that brought it up to
119,000 words came from a source of words that someone
provided me with. So I now provide two dictionaries, the
original MGSPELL dictionary that was created from words
pulled from compuserve. And a 2nd one that has the much
larger dictionary merged into it.
By the way if you are looking for a really good
dictionary program for PASCAL the one that I used(and
registered) is SPELL v1.5, by Acropolis Software 4620 Hazel
Ave, Fair Oaks, Ca 95628. It was a great help in making sure
no mis-spelled words entered this dictionary.
-15-
╔═════════════════════╗
║CONTACTING THE AUTHOR║
╚═════════════════════╝
Suggestions and questions regarding any MicroGenesis product
are welcome by any of the following means:
CompuServe: 76476,1701
Prodigy : GHPX54A
FIDONET : 1:100/555 (JEFF HEATON)
WWIVNET : 44@3457
US POSTAL : MicroGenesis
P.O. Box 25534
St. Louis, Mo 63125
BBS : (314) 638-5204
┌───────────────┐
│Version History│
└───────────────┘
V1.0/1.1 First release, 21,000+ words.
V1.2 Speed improvements, 59,000+ words.
V1.3 Bug Fix in Suggest Routine.
V1.4 Switch to a completly ShareWare version
Addition to 119,000+ words.
┌───────────────┐
│TradeMarks Used│
└───────────────┘
IBM
International Business Machines
MS-DOS,Quick C MicroSoft Corporation
Borland C,Turbo C, Turbo C++ Borland International
CompuServe CompuServe Information Service
Prodigy Prodigy Services Company
FidoNet Tom Jennings
WWIVnet Wayne Bell
-16-